Overview
The approval workflow ensures all product returns undergo administrative review before final processing. Admin users review pending returns, add authorization codes, and either approve or reject each submission with detailed observations.Pendiente
Awaiting admin review
Aprobado
Approved with authorization
Rechazado
Rejected with explanation
Workflow States
Each return progresses through defined states:State Definitions
| State | Database Value | Description |
|---|---|---|
| Pending | Pendiente | Return submitted by Auxiliary, awaiting admin review |
| Approved | Aprobado | Admin has approved the return with authorization code |
| Rejected | Rechazado | Admin has rejected the return with explanation |
Admin Review Process
View Pending Returns
The system displays all returns with status
Pendiente ordered by creation date (oldest first).Review Details
Admin reviews:
- Client information (NIT, name, address)
- Product details (item code, description, quantities)
- Evidence photograph (if uploaded)
- Auxiliary user’s observations
Implementation
Admin Controller
TheAdminController manages the approval interface:
controllers/AdminController.php
Retrieving Pending Returns
The model fetches all pending returns chronologically:models/DevolucionModel.php
Review Submission
Processing Admin Decisions
The complete review logic with validation and transaction handling:controllers/AdminController.php
All required fields are validated before processing. Missing or invalid data results in descriptive error messages.
Database Transaction
The model uses transactions to ensure data integrity:models/DevolucionModel.php
Authorization Codes
Authorization codes provide audit trail and approval tracking:- Purpose
- Format
- Storage
- Unique identifier for each approval
- Links return to external authorization systems
- Required for financial reconciliation
- Audit trail for compliance
Notification System
The system can optionally notify users when their returns are reviewed:controllers/AdminController.php
Notification Table
Notifications are stored in the database:Script_BD/Script_DB.sql
Access Control
Only Admin users (Grade 1) can access the approval panel:controllers/AdminController.php
State Transitions
Pendiente → Aprobado
Pendiente → Aprobado
Trigger: Admin submits approval form with valid authorization codeDatabase Changes:
estado= ‘aprobado’codigo_admin= authorization codeobservacion_admin= admin notesusuario_revisor= admin usernamefecha_revision= current timestamp
- Notification created for auxiliary user
- Return enters approved reports
Pendiente → Rechazado
Pendiente → Rechazado
Trigger: Admin submits rejection form with explanationDatabase Changes:
estado= ‘rechazado’codigo_admin= rejection referenceobservacion_admin= rejection reasonusuario_revisor= admin usernamefecha_revision= current timestamp
- Notification created for auxiliary user
- Return excluded from approval statistics
Review History
The admin panel displays recent review activity:controllers/AdminController.php
Best Practices
Authorization Codes
Use consistent, descriptive codes that link to external tracking systems.
Detailed Observations
Provide clear explanations for all decisions to help auxiliary users understand rejections.
Review Promptly
Process pending returns in chronological order to minimize client wait times.
Evidence Review
Always check uploaded photographs before making approval decisions.
Next Steps
Dashboard Analytics
View approval statistics and performance metrics
Return Management
Learn how returns are initially registered